#include <iostream>
#include <future>

int Add(int num1, int num2)
{
    std::cout<< "into add!\n";
    return num1 + num2;
}

int main()
{
    //std::launch::async策略:内部创建一个线程执行函数 ，函数运行结果通过future获取
    std::future<int> res = std::async(std::launch::async,Add,11,22);//进行一个异步非阻塞调用
    // std::async(std::launch::deferred ,Add,11,22)同步调用你不调用我不执行，我等你调用在执行
    std::this_thread::sleep_for(std::chrono::seconds(1));
    std::cout<<"-------------------\n";
    //std::future<int>::get() 用于获取异步任务的结果，如果还没有结果就会阻塞
    std::cout<< res.get() <<std::endl;
    return 0;
}